1. Field of the Invention
The present invention relates to a program, a storage medium, an information transmission apparatus, and an information transmission method, and more particularly, to a program, a storage medium, an information transmission apparatus, and an information transmission method, which allow information to be transmitted in the form of packets to a receiving terminal in a highly reliable fashion without losses even when the processing capacity of the receiving terminal is low.
2. Description of the Related Art
When a conventional streaming server transmits video data including motion image data and audio data in the form of a stream to a client (receiving terminal), the video data is transmitted to the receiving terminal immediately before the video data is played back by the receiving terminal so that the required buffer capacity is minimized, or the video data is transmitted at a transmission rate so that the variation in transmission rate is minimized.
In the following description, data denoted by “video data” is not necessarily limited to video data, but “video data” may include audio data.
When the conventional streaming server continuously transmits a plurality of packets constituting video data (hereinafter, referred to as video packets) or when different types of packets such as video packets and packets constituting audio data (hereinafter, referred to as audio packets) are transmitted at the same time accidentally, there is a possibility that short-time packet congestion occurs at a receiving terminal.
If packet congestion occurs at a receiving terminal, packets output from the streaming server are transferred to the receiving terminal at the highest rate allowed by the network, even if the packets are output at a low bit rate from the streaming server.
As a result, in the case of a receiving terminal with low processing capacity, overflow can occur in an internal buffer, which can cause a packet to be lost.
Herein, “packet congestion” refers to a state in which packets are continuously transmitted (in a concentrated fashion), as shown in FIG. 1, to a receiving terminal at a rate greater than can be dealt with by the receiving terminal.
By way of example, let us consider a situation in which MPEG (Moving Picture Experts Group)-4 video data is transmitted to a receiving terminal in such a manner that one frame of data is divided into a plurality of packets and resultant packets are transmitted to the receiving terminal as shown in FIG. 1B.
More specifically, frame data 3-1 is divided into video packets 2-1 to 2-3, frame data 3-2 into video packets 2-4 to 2-5, frame data 3-3 into video packets 2-6 to 2-8, frame data 3-4 into video packets 2-9 to 2-11, and frame data 3-5 into video packets 2-12 to 2-13, and each set of resultant packets are transmitted to the receiving terminal.
In this case, packets of each packet set (for example, video packets 2-1 to 2-3 of frame data 3-1) are continuously transmitted to the receiving terminal, and thus packet congestion can occur at the receiving terminal if the processing capacity of the receiving terminal is low.
If additional audio packets 1-1 to 1-5 such as those shown in FIG. 1A are transmitted simultaneously together with respective frame data (sets of video packets) 3-1 to 3-5 shown in FIG. 1B, packets of each packet set consisting of an audio packet and video packets (for example, an audio packet 1-1 and video packets 2-1 to 2-3) are continuously transmitted to the receiving terminal, and thus a greater number of packets arrive at the receiving terminal in a short time, which results in an increase in the probability that packet congestion occurs.
If packet congestion occurs at a receiving terminal, the receiving terminal needs a higher processing capacity than is needed in a normal situation, in particular when the streaming server and the receiving terminal are connected to each other via a high-speed network. As a result, overrunning of a network buffer occurs if the processing capacity of the receiving terminal is low, and some packets are lost. That is, the receiving terminal cannot acquire some packets.
If such video data (some packets of which have been lost) is played back on the receiving terminal with low processing capacity, distortion or a partial lack occurs in the played-back video data. Lost packets may be retransmitted from the streaming server. However, retransmission results in an increase in traffic in the network.
The above-described problem becomes more serious with increasing transmission rate at which data is transmitted between a streaming server and a receiving terminal and with decreasing processing capacity of a receiving terminal (for example, mobile devices generally have low processing capacity and thus they can encounter a serious problem).
In view of the above, an object of the present invention is to prevent a packet loss which would otherwise occur at a low-capacity receiving terminal.